using System;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;

namespace Zadanie65 // Zadanie 6.5
{
    class Serializacja
    {
        double [] pomiary = {10.17, 12.83, 11.78, 15.23, 11.08, 13.67};

        public void zapisz_czytaj_dane()
        {
            Console.WriteLine("Wszystkie pomiary: ");
            for (int i = 0; i < pomiary.Length; i++)
                Console.WriteLine(pomiary[i] + " ");
            
            Stream StreamWrite = new FileStream("pomiary.dat", FileMode.Create); 
            // utworzenie pliku, ktry bdzie zawiera strumienie danych

            BinaryFormatter BinaryWriter = new BinaryFormatter(); // utworzenie obiektu typu BinaryFormatter 
            
            BinaryWriter.Serialize(StreamWrite, pomiary); // serializacja
            StreamWrite.Close(); // zamknicie strumienia

            Console.WriteLine();
            Console.WriteLine("Co drugi pomiar odczytany z pliku pomiary.dat: ");

            Stream StreamRead = new FileStream("pomiary.dat", FileMode.Open); 
            // otwarcie pliku, ktry zawiera strumienie danych
            
            BinaryFormatter BinaryReader = new BinaryFormatter();

            pomiary = (double[]) BinaryReader.Deserialize(StreamRead); // deserializacja i rzutowanie

            for (int i = 0; i < pomiary.Length; i+=2)
                Console.WriteLine(pomiary[i] + " ");

            StreamRead.Close(); // zamknicie strumienia
        }

        static void Main(string[] args)
        {
            Serializacja ser = new Serializacja();

            ser.zapisz_czytaj_dane();

            Console.Read(); // naciskamy klawisz Enter
        }
    }
}
